package com.songshuai.sales.client.service;

import com.songshuai.webapi.baseapi.dto.feign.request.pangu.salemeeting.QueryCustomersReqDto;
import com.songshuai.webapi.baseapi.dto.feign.request.pangu.salemeeting.SendInvitationReqDto;
import com.songshuai.webapi.baseapi.dto.feign.request.pangu.salemeeting.TalkNotesReqDto;
import com.songshuai.webapi.baseapi.dto.feign.response.pangu.salemeeting.*;
import com.songshuai.webapi.baseapi.pojo.BaseParmDto;
import com.songshuai.webapi.baseapi.pojo.QueryPageRes;
import com.songshuai.webapi.baseapi.pojo.QueryResponse;

import java.util.List;

/**
 * 销售-会议管理
 * @Author: lhx
 * @Date: 2019/3/23 14:19
 */
public interface SalesMeetingService {



    /**
     * 查询会议列表
     * @param type 0-最近 1-未来
     * @param userId 当前登陆用户id
     * @return
     */
    QueryResponse<List<MeetingListResDto>> queryMeetingList(Integer type, String userId);

    /**
     * 根据会议查询客户集合
     * @param userId 当前登陆人
     * @param code 会议编号
     * @return
     */
    QueryResponse<List<CustomerListResDto>> queryCustomerList(String userId, String code);

    /**
     * 查看邀请函
     * @param code 会议编号
     * @return
     */
    QueryResponse<List<InvitationLetterResDto>> queryInvitationLetter(String code);

    /**
     * 查询客户信息
     * 邀约客户，根据姓名或手机号模糊查询
     * @return
     */
    QueryResponse<QueryPageRes<List<CustomerInfosResDto>>> queryCustomers(BaseParmDto<QueryCustomersReqDto> request);


    /**
     * 发送邀请函
     * @return
     */
    QueryResponse sendInvitation(SendInvitationReqDto request);


    /**
     * 查看客户回执单信息
     * @param inviteNo 邀约编号
     * @return
     */
    QueryResponse<ReceiptInfoResDto> queryReceipt(String inviteNo);

    /**
     * 接待客户
     * @param code 会议编号
     * @param customerId 客户id
     * @return
     */
    QueryResponse<Boolean> receptionCustomer(String userId, String code, Long customerId);

    /**
     * 查询销售人员信息
     * @param userId
     * @return
     */
    QueryResponse<List<SalesManInfoResDto>> querySalesInfo(String userId);

    /**
     * 转交客户
     * @param userId 当前用户id
     * @param cluesId 客户id
     * @param saleId 转交销售id
     * @return
     */
    QueryResponse<Boolean> handOverCustomer(String userId, Long cluesId, Integer saleId);

    /**
     * 新增沟通记录
     * @return
     */
    QueryResponse<Boolean> talkNotes(TalkNotesReqDto request);

    /**
     * 获取客户历史沟通记录
     * @param clueGuid
     * @return
     */
    QueryResponse<CommunicateListResDto> getCommunicateList(Long clueGuid);



}
